#!/bin/bash

# PATH_MONI_APP_DIR=${HOME}/MoniMoniApp # in standart replace: /usr/local to ${PATH_MONI_APP_DIR}

echo -e "${HLIGHT}--- Chapts: ---${NORMAL}" #start files
echo -e "${BLUE}

- install? :: MoinMoin
- setting? :: MoinMoin
- setting? :: nginx for MoinMoin

${NORMAL}" #print variable

#? install MoinMoin

echo -e "${GREEN}\$VERSION_MOIN_APP = ${VERSION_MOIN_APP}${NORMAL}"                       #print variable
echo -e "${GREEN}\$PATH_MONI_APP_DIR = ${PATH_MONI_APP_DIR}${NORMAL}"                     #print variable
echo -e "${GREEN}\$VERSION_PYTHON_FOR_MOIN_APP = ${VERSION_PYTHON_FOR_MOIN_APP}${NORMAL}" #print variable
echo -e "${GREEN}\$PATH_MONI__ISSUE_DIR = ${PATH_MONI__ISSUE_DIR}${NORMAL}"               #print variable

plt_pause "that current env for you project?"

if plt_is_ques "install? :: MoinMoin in ${PATH_MONI_APP_DIR}"; then

    plt_vae cd "${PATH_MONI__ISSUE_DIR}"

    plt_ques_exec "wget http://static.moinmo.in/files/moin-${VERSION_MOIN_APP}.tar.gz"

    plt_ques_exec "tar zxvf moin-${VERSION_MOIN_APP}.tar.gz"

    plt_vae "cd ${PATH_MONI__ISSUE_DIR}/moin-${VERSION_MOIN_APP}"

    plt_ques_exec "rm -rf ${PATH_MONI_APP_DIR}"

    plt_ques_exec "sudo python${VERSION_PYTHON_FOR_MOIN_APP}" setup.py install --prefix="${PATH_MONI_APP_DIR}"

fi

#? setting MoinMoin

if plt_is_ques "setting? :: MoinMoin"; then

    plt_ques_exec "cd ${PATH_MONI_APP_DIR}/share/moin"

    plt_ques_exec cp server/moin.wsgi .

    echo -e "sudo vi moin.wsgi
    После строки import sys, os вставьте следующий код:
 
        sys.path.insert(0, '${PATH_MONI_APP_DIR}/lib/python2.7/dist-packages/')
        sys.path.insert(0, '${PATH_MONI_APP_DIR}/share/moin/')

    Сохраните и закройте файл. Эти строки указывают расположение кода MoinMoin и конфигурационных файлов вики.

do that:

vim uwsgi.ini

    Добавьте в этот файл следующие строки:

[uwsgi] uid = st
gid = st
socket = ${PATH_MONI_APP_DIR}/share/moin/moin.sock
chmod-socket = 660
logto = /var/log/uwsgi/uwsgi.log 
chdir = ${PATH_MONI_APP_DIR}/share/moin/
wsgi-file = moin.wsgi
master
workers = 3
max-requests = 200
harakiri = 30
die-on-term

    Сохраните и закройте файл. Файл uwsgi.ini будет использоваться для загрузки приложения
    MoinMoin и сервера uWSGI. Данный код определяет пользователя, сокет, конфигурационные
    файлы и логи сервера, которые будет использовать приложение. При необходимости можно
    отредактировать количество рабочих процессов, максимальное количество запросов и
    продолжительность сессии.
    "
    plt_pause "do that?"

    plt_ques_exec "sudo mkdir -p /var/log/uwsgi"
    plt_ques_exec "sudo chown st /var/log/uwsgi"

    echo -e "После этого нужно создать initctl-скрипт, предназначенный для запуска приложения MoinMoin. Этот скрипт включит MoinMoin при загрузке сервера и позволит управлять uWSGI при помощи команд:

    start moin
    stop moin
    
    Создайте и откройте файл moin.conf:

sudo vim /etc/init.d/moin.conf

        Добавьте в него код:

description \"moin uwsgi service\"
start on runlevel [2345] stop on runlevel [!2345] chdir ${PATH_MONI_APP_DIR}/share/moin
exec ${PATH_MONI_APP_DIR}/bin/uwsgi ${PATH_MONI_APP_DIR}/share/moin/uwsgi.ini
respawn

    Сохраните и закройте файл. Строки chdir и exec должны отображать расположение установки MoinMoin, а также бинарных файлов и uwsgi.ini сервера uWSGI.

        Теперь можно запустить сервер приложений:

        sudo start moin

        Но сначала рекомендуется отредактировать настройки вики.
        "

fi

#? setting wiki

if plt_is_ques "setting? :: wiki"; then

    plt_ques_exec "cd ${PATH_MONI_APP_DIR}/share/moin"
    plt_ques_exec "cp config/wikiconfig.py ."

    echo -e "Откройте файл:

do that:

vim ${PATH_MONI_APP_DIR}/share/moin/wikiconfig.py

    В нём можно отладить работу вики. Как минимум, нужно отредактировать следующие параметры:

    sitename: укажите название вики-сайта.
    page_front_page: раскомментируйте эту строку, чтобы у сайта появилась стартовая страница.
    superuser: укажите имя администратора сайта и раскомментируйте строку.
    Найдите все эти строки, удалите символ # и внесите свои данные, например:

        sitename = u'My Wiki'
        page_front_page = u\"FrontPage\"
        superuser = [u\"WikiAdmin\", ]

    Сохраните и закройте файл. Помните: это файл Python, потому нужно сохранить все существующие абзацные отступы.

    Перед запуском приложения нужно изменить права собственности и права доступа к каталогам MoinMoin:

do that:"

    plt_ques_exec "sudo chown -R www-data: ${PATH_MONI_APP_DIR}/share/moin"
    plt_ques_exec "sudo chmod -R o-rwx ${PATH_MONI_APP_DIR}/share/moin"

    echo -e "   Запустите uWSGI:"

    plt_ques_exec sudo start moin
     
    echo -e "
    Теперь платформа MoinMoin работает; осталось установить и настроить веб-сервер Nginx.
    "

fi

#? setting nginx for MoinMoin

if plt_is_ques "setting? :: nginx for MoinMoin"; then

    echo -e "

do that:
    
    sudo vi /etc/nginx/sites-available.d/moin

write that:

    server {
    server_name localhost_moin;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    location / {
    include uwsgi_params;
    uwsgi_pass unix://${PATH_MONI_APP_DIR}/share/moin/moin.sock;
    uwsgi_modifier1 30;
    }
    }

do that:

    cd /etc/nginx/sites-enabled
    sudo ln -s ../sites-available/moin .

    sudo service nginx restart

see in browser:

    переход: http://localhost_moin
    "
    plt_pause "do this instruction?"
fi
